package com.cheng.common.valid;

import javax.validation.Constraint;
import javax.validation.Payload;
import javax.validation.constraints.NotNull;
import java.lang.annotation.*;

/**
 * @Author: 朱程
 * @Date: 2022/11/21/16:40
 * @Description:
 *               1. 创建自定义的注解 @EnumValidate 参考@NutNull 源码来开发
 *               2. @Constraint 可以指定该自定义注解和哪个校验器关联
 *               3. String message() default "{?}" 可以指定校验时,返回的信息
 */
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER, ElementType.TYPE_USE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Constraint(
        validatedBy = {EnumConstraintValidator.class}
)
public @interface EnumValidate {

    String message() default "{com.cheng.common.valid.EnumValidate.message}";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};

    //增加values属性
    int[] values() default {};

    String regexp();

}
